// 重载：参数的问题，兼容
// function reverse1(target: number): number//重载签名1
// function reverse1(target: string): string//重载签名1
// function reverse1(target: number | string) {//签名的实现

// }


//type 类型别名
type str = string | number;
var ab: str = '123'


type voidFunc = () => void;
//当返回void，返回值会被忽略掉  void 表示忽略函数中的返回值
var fn1: voidFunc = () => true

// number string boolean bigint symbol object function Array
// interface
// enum
// 类型：interface class enum
// object/对象字面量类型
// number/数字字面量类型
// boolean/布尔字面量类型
// string 字符串字面量类型
// array/数组字面量类型
// symbol bigint/bigint字面量类型
// 值 class enum object number boolean string function array symbol() bigint

// 字面量类型
type Direction = 'left' | 'right' | 'up' | 'down';
// direction只能是Direction中的字符串
var direction: Direction = 'left'


// 字面量推断，通过as和const解决